/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cjava.system.util;

import java.util.List;
import org.apache.commons.collections.list.TreeList;
import org.cjava.system.model.PersonProfile;
import org.cjava.system.model.Profile;

/**
 *
 * @author user
 */
public class ListUtilitary {

    
    /**
     * CONJUNTOS: <br/>
     * Conjunto A: [Esta, coleccion, es, una] <br/> 
     * Conjunto B: [Otra, coleccion, es, mas] <br/><br/>
     * Unión: [Esta, Otra, coleccion, es, mas, una]
     */
    public static List unionGen(List a, List b) {
        List res = new TreeList(a);
        res.addAll(b);
        return res;
    }
    
    /**
     * CONJUNTOS: <br/>
     * Conjunto A: [Esta, coleccion, es, una] <br/> 
     * Conjunto B: [Otra, coleccion, es, mas] <br/><br/>
     * Interseccion: [coleccion, es]
     */
    public static List interseccionGen(List a, List b) {
        List res = new TreeList(a);
        res.retainAll(b);
        return res;
    }

    /**
     * CONJUNTOS: <br/>
     * Conjunto A: [Esta, coleccion, es, una] <br/> 
     * Conjunto B: [Otra, coleccion, es, mas] <br/><br/>
     * Diferencia: [Esta, una]
     */
    public static List diferenciaGen(List a, List b) {
        List res = new TreeList(a);
        res.removeAll(b);
        return res;
    }

    /**
     * CONJUNTOS: <br/>
     * Conjunto A: [Esta, coleccion, es, una] <br/> 
     * Conjunto B: [Otra, coleccion, es, mas] <br/><br/>
     * Diferencia simética: [Esta, Otra, mas, una]
     */
    public static List diferenciaSimetricaGen(List a, List b) {
        List res = diferenciaGen(a, b);
        List bmenosa = diferenciaGen(b, a);
        res.addAll(bmenosa);
        return res;
    }


}
